Embedded Systems Modeling and Verification
EMB 320 provides a comprehensive introduction to the principles and practices of modeling and verifying embedded systems, crucial for ensuring their correctness, safety, and performance. Students will explore various modeling paradigms, starting with traditional state-based models like finite state machines (FSMs) and statecharts, and progressing to more advanced concepts such as Petri nets for concurrent systems. The course emphasizes the practical application of these models through simulation and analysis tools, enabling students to predict system behavior and identify potential design flaws early in the development cycle. A significant portion of the course is dedicated to verification techniques, including formal methods like model checking, where students will learn to specify system properties and automatically check if the design satisfies them. Hardware/software co-simulation and testing strategies tailored for embedded systems will also be covered, providing a holistic view of the verification process. Through hands-on labs and project-based assignments, students will gain experience in using industry-standard tools to model, simulate, and verify complex embedded system designs.
Prerequisites
Course outline
Lectures, virtual labs, and graded assignments — completed in your browser.
Syllabus
## Course Outcomes Upon successful completion of this course, students will be able to: 1. Apply finite state machine (FSM) and statechart models to represent embedded system behavior. 2. Utilize Petri nets to model concurrent and distributed aspects of embedded systems. 3. Perform simulations of embedded system models to analyze their dynamic behavior and performance. 4. Specify formal properties of embedded systems using temporal logic. 5. Apply model checking techniques to verify properties of embedded system designs. 6. Understand and apply hardware/software co-simulation for integrated system verification. 7. Develop effective testing strategies for embedded systems, including unit, integration, and system testing. ## Weekly Topic List * **Week 1:** Introduction to Embedded Systems Modeling & Verification; Overview of Design Flow * **Week 2:** Finite State Machines (FSMs) and Statecharts: Concepts and Examples * **Week 3:** Practical Modeling with FSMs/Statecharts using Stateflow or similar tools * **Week 4:** Introduction to Petri Nets: Concepts, Properties, and Applications * **Week 5:** Modeling Concurrent Systems with Petri Nets; Analysis of Reachability and Boundedness * **Week 6:** Simulation Techniques for Embedded Systems: Discrete Event and Continuous Simulation * **Week 7:** Introduction to Formal Verification: Why, What, and How? * **Week 8:** Temporal Logic (LTL, CTL) for Property Specification * **Week 9:** Model Checking Principles and Algorithms * **Week 10:** Applying Model Checkers (e.g., NuSMV, Spin) for Embedded Systems * **Week 11:** Hardware/Software Co-simulation: Concepts and Tools * **Week 12:** Embedded System Testing Strategies: Unit, Integration, and System Testing * **Week 13:** Comprehensive Midterm Review * **Week 14:** Final Review ## Grading Policy * Knowledge Checks: 15% * Assignments/Labs: 30% * Quizzes: 25% * Final Exam: 30% ## Required Materials * **Primary Textbook:** *Embedded Systems: A Contemporary Design Tool* by James K. Peckol (Wiley) * **Supplemental Readings:** Provided online via the Learning Management System (LMS) * **Software Tools:** MATLAB/Simulink (with Stateflow), NuSMV, Spin, selected hardware/software co-simulation tools (e.g., QEMU, selected IDEs for microcontrollers). Access provided through online college labs.